package AlgoritmosGeneticos.model.impl.selecciones;

import java.util.List;

import utils.CustomRandom;

import AlgoritmosGeneticos.model.EstrategiaDeSeleccion;
import AlgoritmosGeneticos.model.Individuo;
import AlgoritmosGeneticos.model.PoblacionSeleccionada;

public class MixtoEliteRuleta implements EstrategiaDeSeleccion{
	
	public MixtoEliteRuleta(){
		super();
		System.out.println("MixtoEliteRuleta");
	}
	
	@Override
	public PoblacionSeleccionada seleccionar(List<Individuo> pob, int k) {
		int n = k - CustomRandom.getRandomInt(k);
		EstrategiaDeSeleccion ruleta = new Ruleta("nada");
		EstrategiaDeSeleccion elite = new Elite("nada");
		PoblacionSeleccionada elitepob= elite.seleccionar(pob, n);
		PoblacionSeleccionada ruletapob= ruleta.seleccionar(pob, k - n);
		
		elitepob.AppendPoblacion(ruletapob);
		
		return elitepob;
	}
}
